using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using MakeIT.Framework.Util;
using MakeIT.Look.Imagem.Entidades;
using MakeIT.Look.Imagem.Negocios;

namespace MakeIT.Look.Imagem.Apresentacao
{
	public partial class CadastroBookcli : System.Web.UI.Page
	{

		UsuarioVO usuarioVO = null;
		protected LookDAOT LookDAOT = null;

		protected void Page_Load(object sender, EventArgs e)
		{
			this.LookDAOT = new LookDAOT();
			usuarioVO = (UsuarioVO)this.Session["userActive"];

			if (!IsPostBack)
			{
				Util.HabilitarCampos(false, this.panelCad);
				atualizarDdlIdPlayList(null, null);
				atualizarDdlIdCliente(null, null);

				this.panelBookclifoto.Enabled = false;

				this.panelBookclivideo.Enabled = false;
			}

		}

		protected void Page_Unload(object sender, EventArgs e)
		{
			try
			{
				if (this.LookDAOT != null)
					this.LookDAOT.closeDAO();
			}
			catch (Exception ex) {}
		}

		protected void grvResultado_PageIndexChanging(object sender, GridViewPageEventArgs e)
		{
			this.grvResultado.PageIndex = e.NewPageIndex;
			btnPesquisa_Click(null, null);
		}
		protected void atualizarDdlIdPlayList(object sender, ImageClickEventArgs e)
		{
			List<PlaylistVO> idPlayListCadVOs = new List<PlaylistVO>();
			PlaylistVO idPlayListCadVO = PlaylistVO.CreateVO();
			idPlayListCadVO.idPlayList = -1;
			idPlayListCadVO.playlist = "";
			idPlayListCadVOs.Add(idPlayListCadVO);
			idPlayListCadVOs.AddRange(this.LookDAOT.getPlaylists());
			Util.CarregarCombo(this.ddlCadIdPlayList, idPlayListCadVOs);

		}

		protected void atualizarDdlIdCliente(object sender, ImageClickEventArgs e)
		{
			List<ClienteVO> idClienteCadVOs = new List<ClienteVO>();
			ClienteVO idClienteCadVO = ClienteVO.CreateVO();
			idClienteCadVO.idCliente = -1;
			idClienteCadVO.cliente = "";
			idClienteCadVOs.Add(idClienteCadVO);
			idClienteCadVOs.AddRange(this.LookDAOT.getClientes());
			Util.CarregarCombo(this.ddlCadIdCliente, idClienteCadVOs);

		}

		/// <summary>
		/// Manipula o evento do botão btnSalvar
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnSalvar_Click(object sender, EventArgs e)
		{

			//Declara objetos
			BookcliVO bookcliVO = null;
			bool novoRegistro = false;

			try
			{
				//Verifica se o ID é nulo, se sim = cadastro novo
				if (string.IsNullOrEmpty(this.txtCadIdBookCli.Text))
				{
					bookcliVO = BookcliVO.CreateVO();
					bookcliVO.cadastro = DateTime.Now;
					bookcliVO.cadastradoPor = usuarioVO.user;

					novoRegistro = true;

				}
				//Recupera dados para serem alterados
				else
				{
					//Recupera dados
					bookcliVO = this.LookDAOT.getBookcli(Int32.Parse(this.txtCadIdBookCli.Text));
				}

                if (DateTime.Parse(this.txtCadVigenciaIni.Text).CompareTo(DateTime.Parse(this.txtCadVigenciaFin.Text)) > 0)
                {
                    Util.ExibeAlert(this, "A Data Inicial de Vigência deve ser menor ou igual à Data Final.");
                    return;
                }

				bookcliVO.bookCli = this.txtCadBookCli.Text;
				bookcliVO.vigenciaIni = DateTime.Parse(this.txtCadVigenciaIni.Text);
				bookcliVO.vigenciaFin = DateTime.Parse(this.txtCadVigenciaFin.Text);
				bookcliVO.ativo = this.ddlCadAtivo.SelectedValue.Equals("S");
				if(this.ddlCadIdPlayList.SelectedValue.Equals("-1"))
					bookcliVO.idPlayList = null;
				else
					bookcliVO.idPlayList = Int32.Parse(this.ddlCadIdPlayList.SelectedValue);
				bookcliVO.idCliente = Int32.Parse(this.ddlCadIdCliente.SelectedValue);
				bookcliVO.publico = this.ddlCadPublico.SelectedValue.Equals("S");
				bookcliVO.edicao = DateTime.Now;
				bookcliVO.editadoPor = usuarioVO.user;

				//Chama metodo para salvar ou criar novo registro
				if (novoRegistro)
					bookcliVO.idBookCli = (int)this.LookDAOT.newBookcli(bookcliVO);
				else
					this.LookDAOT.setBookcli(bookcliVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro salvo com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Atualiza formulario, apos salvar os dados
				this.txtCadIdBookCli.Text = bookcliVO.idBookCli.ToString();
				this.ltCadastradoPor.Text = bookcliVO.cadastradoPor;
				this.ltEditadoPor.Text = bookcliVO.editadoPor;
				this.ltDataCadastro.Text = bookcliVO.cadastro.ToString("dd/MM/yyyy");
				this.ltDataEdicao.Text = bookcliVO.edicao.ToString("dd/MM/yyyy");

				//habilita Bookclifoto
				if (!this.panelBookclifoto.Enabled)
				{
					this.ltCadBookclifotoBookcli.Text = bookcliVO.ToString();
					Util.HabilitarCampos(false, this.panelBookclifoto);
					this.panelBookclifoto.Enabled = true;
					this.btnCadBookclifotoSalvar.Enabled = false;
					this.btnCadBookclifotoEditar.Enabled = false;
					this.btnCadBookclifotoExcluir.Enabled = false;
                    //this.btnCadBookclifotoNovo.Enabled = true;
					//Habilita botoes da imagem foto
                    //this.btCadBookclifotoFotoRemover.Enabled = true;
                    //this.afuCadBookclifotoFotoUpload.Enabled = true;
                    //this.btCadBookclifotoFotoVisualizar.Enabled = true;
				}
				//habilita Bookclivideo
				if (!this.panelBookclivideo.Enabled)
				{
					this.ltCadBookclivideoBookcli.Text = bookcliVO.ToString();
					Util.HabilitarCampos(false, this.panelBookclivideo);
					this.panelBookclivideo.Enabled = true;
					this.btnCadBookclivideoSalvar.Enabled = false;
					this.btnCadBookclivideoEditar.Enabled = false;
					this.btnCadBookclivideoExcluir.Enabled = false;
					this.btnCadBookclivideoNovo.Enabled = true;
				}
			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		/// <summary>
		/// Manipula o evento do botão btnPesquisa
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnPesquisa_Click(object sender, EventArgs e)
		{

			//Declara objetos
			int? idBookCli = null;
			string bookCli = null;
			DateTime? vigenciaIni = null;
			DateTime? vigenciaFin = null;
			bool? ativo = null;
			bool? publico = null;

			try
			{

				if (!string.IsNullOrEmpty(this.txtIdBookCli.Text))
				{
					idBookCli = Int32.Parse(this.txtIdBookCli.Text);
				}

				if (!string.IsNullOrEmpty(this.txtBookCli.Text))
				{
					bookCli = this.txtBookCli.Text;
				}

				if (!string.IsNullOrEmpty(this.txtVigenciaIni.Text))
				{
					vigenciaIni = DateTime.Parse(this.txtVigenciaIni.Text);
				}

				if (!string.IsNullOrEmpty(this.txtVigenciaFin.Text))
				{
					vigenciaFin = DateTime.Parse(this.txtVigenciaFin.Text);
				}

				if(!this.ddlAtivo.SelectedValue.Equals(" "))
				{
					ativo = this.ddlAtivo.SelectedValue.Equals("S");
				}

				if(!this.ddlPublico.SelectedValue.Equals(" "))
				{
					publico = this.ddlPublico.SelectedValue.Equals("S");
				}


				//Recupera a lista de registros segundo a pesquisa
				this.grvResultado.DataSource = this.LookDAOT.getBookclis(idBookCli, null, null, bookCli, vigenciaIni, vigenciaFin, ativo, publico);

				//Vincula os dados
				this.grvResultado.DataBind();
			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		/// <summary>
		/// Manipula o evento do botão btnCancelar
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnCancelar_Click(object sender, EventArgs e)
		{
			//Volta para a tab page de pesquisa
			//this.tabBookcli.ActiveTabIndex = 0;

			// Desabilita os campos para edição
			Util.HabilitarCampos(false, this.panelCad);

			// Destrava botão de edição
			this.btnEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadIdBookCli.Text));

			// Destrava botão de exclusao
			this.btnExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadIdBookCli.Text));

			// Detrava botão de novo
			this.btnNovo.Enabled = true;

			// Desabilita o botão salvar
			this.btnSalvar.Enabled = false;

		}

		protected void imgbVisualizar_Click(object sender, ImageClickEventArgs e)
		{
			// Declara objetos
			BookcliVO bookcliVO = null;
			int idBookCli = 0;

			try
			{
				//Recupera os argumentos com o ID do objeto
				string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
				idBookCli = Int32.Parse(argumentos[0]);

				//Recupera o objeto
				bookcliVO = this.LookDAOT.getBookcli(idBookCli);

				this.txtCadIdBookCli.Text = bookcliVO.idBookCli.ToString();
				this.txtCadBookCli.Text = bookcliVO.bookCli;
				this.txtCadVigenciaIni.Text = bookcliVO.vigenciaIni.ToString("dd/MM/yyyy");
				this.txtCadVigenciaFin.Text = bookcliVO.vigenciaFin.ToString("dd/MM/yyyy");
				this.ddlCadAtivo.SelectedValue = (bookcliVO.ativo==null?" ":(bookcliVO.ativo.Value?"S":"N"));
				if(bookcliVO.idPlayList==null)
					this.ddlCadIdPlayList.SelectedValue = "-1";
				else
					this.ddlCadIdPlayList.SelectedValue = bookcliVO.idPlayList.Value.ToString();
				this.ddlCadIdCliente.SelectedValue = bookcliVO.idCliente.ToString();
				this.ddlCadPublico.SelectedValue = (bookcliVO.publico==null?" ":(bookcliVO.publico.Value?"S":"N"));
				this.ltCadastradoPor.Text = bookcliVO.cadastradoPor;
				this.ltEditadoPor.Text = bookcliVO.editadoPor;
				this.ltDataCadastro.Text = bookcliVO.cadastro.ToString("dd/MM/yyyy");
				this.ltDataEdicao.Text = bookcliVO.edicao.ToString("dd/MM/yyyy");

                Session["IdBookcli"] = bookcliVO.idBookCli;

				//recupera Bookclifoto
				Util.LimparCampos(this.panelBookclifoto);
				Util.HabilitarCampos(false, this.panelBookclifoto);
				this.panelBookclifoto.Enabled = true;
				this.ltCadBookclifotoBookcli.Text = bookcliVO.ToString();
				this.ltBookclifotoCadastradoPor.Text = "";
				this.ltBookclifotoDataCadastro.Text = "";
				this.ltBookclifotoDataEdicao.Text = "";
				this.ltBookclifotoEditadoPor.Text = "";
				this.btnCadBookclifotoSalvar.Enabled = false;
				this.btnCadBookclifotoEditar.Enabled = false;
				this.btnCadBookclifotoExcluir.Enabled = false;
                this.afuBookcli.Enabled = true;
                this.ddlCadBookclifotoDestaque.Enabled = true;
                //this.btnCadBookclifotoNovo.Enabled = true;
                //this.btCadBookclifotoFotoRemover.Enabled = false;
                //this.afuCadBookclifotoFotoUpload.Enabled = false;
                //this.btCadBookclifotoFotoVisualizar.Enabled = false;
				this.grvCadBookclixBookclifoto.DataSource = this.LookDAOT.getBookclifotos(null, bookcliVO.idBookCli);
				this.grvCadBookclixBookclifoto.DataBind();

				//recupera Bookclivideo
				Util.LimparCampos(this.panelBookclivideo);
				Util.HabilitarCampos(false, this.panelBookclivideo);
				this.panelBookclivideo.Enabled = true;
				this.ltCadBookclivideoBookcli.Text = bookcliVO.ToString();
				this.ltBookclivideoCadastradoPor.Text = "";
				this.ltBookclivideoDataCadastro.Text = "";
				this.ltBookclivideoDataEdicao.Text = "";
				this.ltBookclivideoEditadoPor.Text = "";
				this.btnCadBookclivideoSalvar.Enabled = false;
				this.btnCadBookclivideoEditar.Enabled = false;
				this.btnCadBookclivideoExcluir.Enabled = false;
				this.btnCadBookclivideoNovo.Enabled = true;
				this.grvCadBookclixBookclivideo.DataSource = this.LookDAOT.getBookclivideos(null, null, bookcliVO.idBookCli);
				this.grvCadBookclixBookclivideo.DataBind();

				//Habilita tab page do cadastro
				this.tabBookcli.ActiveTabIndex = 1;

				//Desabilita campos para edição
				Util.HabilitarCampos(false, this.panelCad);

				//Desabilita botão salvar
				this.btnSalvar.Enabled = false;

				//Habilita botão editar
				this.btnEditar.Enabled = true;

				//Habilita botão excluir
				this.btnExcluir.Enabled = true;

				//Habilita botão novo
				this.btnNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		// <summary>
		// Manipula o evento editar do web form
		// </summary>
		// <param name="sender">Objeto disparador de evento</param>
		// <param name="e">Argumento do evento</param>
		protected void btnEditar_Click(object sender, EventArgs e)
		{
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelCad);

			// Trava apenas os text box da PK
			this.txtCadIdBookCli.Enabled = false;

			// Trava botão de edição
			this.btnEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnExcluir.Enabled = false;

			// Trava botão de novo
			this.btnNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnSalvar.Enabled = true;

		}

		protected void btnNovo_Click(object sender, EventArgs e)
		{
			//Limpa formulario, para a entrada de novo registro
			Util.LimparCampos(this.panelCad);
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelCad);

			this.ltCadastradoPor.Text = "";
			this.ltEditadoPor.Text = "";
			this.ltDataCadastro.Text = "";
			this.ltDataEdicao.Text = "";

			// Limpa Bookclifoto
			Util.LimparCampos(this.panelBookclifoto);
			Util.HabilitarCampos(false, this.panelBookclifoto);
			this.ltCadBookclifotoBookcli.Text = "";
			this.ltBookclifotoCadastradoPor.Text = "";
			this.ltBookclifotoDataCadastro.Text = "";
			this.ltBookclifotoDataEdicao.Text = "";
			this.ltBookclifotoEditadoPor.Text = "";
			this.grvCadBookclixBookclifoto.DataSource = null;
			this.grvCadBookclixBookclifoto.DataBind();
			this.panelBookclifoto.Enabled = false;
			this.btnCadBookclifotoSalvar.Enabled = false;
			this.btnCadBookclifotoEditar.Enabled = false;
			this.btnCadBookclifotoExcluir.Enabled = false;
            //this.btnCadBookclifotoNovo.Enabled = false;
            //this.btCadBookclifotoFotoRemover.Enabled = false;
            //this.afuCadBookclifotoFotoUpload.Enabled = false;
            //this.btCadBookclifotoFotoVisualizar.Enabled = false;

			// Limpa Bookclivideo
			Util.LimparCampos(this.panelBookclivideo);
			Util.HabilitarCampos(false, this.panelBookclivideo);
			this.ltCadBookclivideoBookcli.Text = "";
			this.ltBookclivideoCadastradoPor.Text = "";
			this.ltBookclivideoDataCadastro.Text = "";
			this.ltBookclivideoDataEdicao.Text = "";
			this.ltBookclivideoEditadoPor.Text = "";
			this.grvCadBookclixBookclivideo.DataSource = null;
			this.grvCadBookclixBookclivideo.DataBind();
			this.panelBookclivideo.Enabled = false;
			this.btnCadBookclivideoSalvar.Enabled = false;
			this.btnCadBookclivideoEditar.Enabled = false;
			this.btnCadBookclivideoExcluir.Enabled = false;
			this.btnCadBookclivideoNovo.Enabled = false;

			// Trava apenas os text box da PK
			this.txtCadIdBookCli.Enabled = false;

			// Trava botão de edição
			this.btnEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnExcluir.Enabled = false;

			// Trava botão de novo
			this.btnNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnSalvar.Enabled = true;

		}

		protected void btnExcluir_Click(object sender, EventArgs e)
		{
			//Declara objetos
			BookcliVO bookcliVO = null;

			try
			{
				//Cria objeto
				bookcliVO = BookcliVO.CreateVO();
				bookcliVO.idBookCli = Int32.Parse(this.txtCadIdBookCli.Text);

				// Remove Bookclifoto
				List<BookclifotoVO> bookclifotoVOs = LookDAOT.getBookclifotos(null, bookcliVO.idBookCli);
				foreach (BookclifotoVO bookclifotoVO in bookclifotoVOs)
					this.LookDAOT.delBookclifoto(bookclifotoVO);

				// Remove Bookclivideo
				List<BookclivideoVO> bookclivideoVOs = LookDAOT.getBookclivideos(null, null, bookcliVO.idBookCli);
				foreach (BookclivideoVO bookclivideoVO in bookclivideoVOs)
					this.LookDAOT.delBookclivideo(bookclivideoVO);

				//Chama metodo para excluir registro
				this.LookDAOT.delBookcli(bookcliVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro excluido com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Limpa formulario, apos salvar os dados
				Util.LimparCampos(this.panelCad);
				//Limpa Bookclifoto
				Util.LimparCampos(this.panelBookclifoto);
				Util.HabilitarCampos(false, this.panelBookclifoto);
				this.panelBookclifoto.Enabled = false;
				this.ltCadBookclifotoBookcli.Text = "";
				this.ltBookclifotoCadastradoPor.Text = "";
				this.ltBookclifotoDataCadastro.Text = "";
				this.ltBookclifotoDataEdicao.Text = "";
				this.ltBookclifotoEditadoPor.Text = "";
				this.grvCadBookclixBookclifoto.DataSource = null;
				this.grvCadBookclixBookclifoto.DataBind();
				this.btnCadBookclifotoSalvar.Enabled = false;
				this.btnCadBookclifotoEditar.Enabled = false;
				this.btnCadBookclifotoExcluir.Enabled = false;
                //this.btnCadBookclifotoNovo.Enabled = false;
                //this.btCadBookclifotoFotoRemover.Enabled = false;
                //this.afuCadBookclifotoFotoUpload.Enabled = false;
                //this.btCadBookclifotoFotoVisualizar.Enabled = false;

				//Limpa Bookclivideo
				Util.LimparCampos(this.panelBookclivideo);
				Util.HabilitarCampos(false, this.panelBookclivideo);
				this.panelBookclivideo.Enabled = false;
				this.ltCadBookclivideoBookcli.Text = "";
				this.ltBookclivideoCadastradoPor.Text = "";
				this.ltBookclivideoDataCadastro.Text = "";
				this.ltBookclivideoDataEdicao.Text = "";
				this.ltBookclivideoEditadoPor.Text = "";
				this.grvCadBookclixBookclivideo.DataSource = null;
				this.grvCadBookclixBookclivideo.DataBind();
				this.btnCadBookclivideoSalvar.Enabled = false;
				this.btnCadBookclivideoEditar.Enabled = false;
				this.btnCadBookclivideoExcluir.Enabled = false;
				this.btnCadBookclivideoNovo.Enabled = false;

				this.ltCadastradoPor.Text = "";
				this.ltEditadoPor.Text = "";
				this.ltDataCadastro.Text = "";
				this.ltDataEdicao.Text = "";

				// Trava botão de edição
				this.btnEditar.Enabled = false;

				// Trava botão de exclusao
				this.btnExcluir.Enabled = false;

				// Desabilita o botão salvar
				this.btnSalvar.Enabled = false;

				// Habilita o botao novo
				this.btnNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
			
		}
		#region Imagens
		protected void ibtPanelFotoClose_Click(object sender, EventArgs e)
		{
			this.PanelFoto.Visible = false;
		}

		#region Imagem Foto
        protected void afuBookcli_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
        {
            try
            {
                if (e.FileName.Length > 0)
                {
                    BookclifotoVO bookclifotoVO = BookclifotoVO.CreateVO();
                    bookclifotoVO.fotoMime = e.ContentType;
                    bookclifotoVO.fotoNome = e.FileName;

                    bookclifotoVO.idBookCli = (int)Session["IdBookcli"];
                    bookclifotoVO.destaque = (Session[this.ddlCadBookclifotoDestaque.ID] ?? "N").ToString().Equals("S");

                    bookclifotoVO.cadastradoPor = usuarioVO.user;
                    bookclifotoVO.cadastro = DateTime.Now;
                    bookclifotoVO.editadoPor = usuarioVO.user;
                    bookclifotoVO.edicao = DateTime.Now;
                    bookclifotoVO.idBookCliFoto = (int)this.LookDAOT.newBookclifoto(bookclifotoVO);

                    bookclifotoVO.foto = e.GetContents();
                    this.LookDAOT.setBookclifotoFoto(bookclifotoVO);

                    this.grvCadBookclixBookclifoto.DataSource = this.LookDAOT.getBookclifotos(null, (int)Session["IdBookcli"]);
                    this.grvCadBookclixBookclifoto.DataBind();
                }
            }
            catch { throw; }
        }

        protected void imgbCadBookcliFotoVisualizar_Click(object sender, EventArgs e)
		{
			BookclifotoVO bookclifotoVO = LookDAOT.getBookclifoto(Int32.Parse((sender as ImageButton).CommandArgument));
			this.ltCadBookclifotoFotoNome.Text = bookclifotoVO.fotoNome;
			this.ltCadBookclifotoFotoMime.Text = bookclifotoVO.fotoMime;

			this.imgPanelFoto.ImageUrl = "~/DownBookclifotoFoto.aspx?idBookCliFoto=" + bookclifotoVO.idBookCliFoto.ToString()+"&controll="+DateTime.Now.Ticks.ToString();
			this.lblPanelFoto.Text = this.ltCadBookclifotoFotoNome.Text + "( " + this.ltCadBookclifotoFotoMime.Text + " )";
			this.PanelFoto.Visible = true;
		}
		/*protected void ProcessafuCadBookclifotoFotoUpload(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
		{
			// upload da imagem
			if (afuCadBookclifotoFotoUpload.PostedFile.FileName.Length > 0)
			{
				BookclifotoVO bookclifotoVO = BookclifotoVO.CreateVO();
				bookclifotoVO.idBookCliFoto = Int32.Parse(this.txtCadBookclifotoIdBookCliFoto.Text);
				bookclifotoVO.fotoMime = afuCadBookclifotoFotoUpload.PostedFile.ContentType;
				bookclifotoVO.fotoNome = afuCadBookclifotoFotoUpload.PostedFile.FileName;

				System.IO.Stream st = afuCadBookclifotoFotoUpload.PostedFile.InputStream;
				byte[] fb = new byte[st.Length];

				fb = afuCadBookclifotoFotoUpload.GetBytesFromStream(st);

				bookclifotoVO.foto = fb;

				bookclifotoVO.edicao = DateTime.Now;
				bookclifotoVO.editadoPor = usuarioVO.user;
				this.LookDAOT.setBookclifotoFoto(bookclifotoVO);

			}

		} */
        protected void imgbCadBookcliFotoRemover_Click(object sender, EventArgs e)
		{
			BookclifotoVO bookclifotoVO = BookclifotoVO.CreateVO();
			bookclifotoVO.idBookCliFoto = Int32.Parse(this.txtCadBookclifotoIdBookCliFoto.Text);
			bookclifotoVO.foto = null;
			bookclifotoVO.fotoMime = null;
			bookclifotoVO.fotoNome = null;
			this.LookDAOT.setBookclifotoFoto(bookclifotoVO);
			this.ltCadBookclifotoFotoMime.Text = "";
			this.ltCadBookclifotoFotoNome.Text = "";

			// Exibe msg de sucesso ao salvar registro
			Util.ExibeAlert(this, "Imagem removida!");
		}

		#endregion
		#endregion
		#region BookcliXBookclifoto
        protected void btnCadBookclifotoSalvar_Click(object sender, EventArgs e)
        {
            BookclifotoVO bookclifotoVO = null;

            try
            {
                bookclifotoVO = this.LookDAOT.getBookclifoto(Int32.Parse(this.txtCadBookclifotoIdBookCliFoto.Text));

                bookclifotoVO.idBookCli = Int32.Parse(this.txtCadIdBookCli.Text);
                bookclifotoVO.destaque = this.ddlCadBookclifotoDestaque.SelectedValue.Equals("S");
                bookclifotoVO.edicao = DateTime.Now;
                bookclifotoVO.editadoPor = usuarioVO.user;

                this.LookDAOT.setBookclifoto(bookclifotoVO);

                // Exibe msg de sucesso ao salvar registro
                Util.ExibeAlert(this, "Registro salvo com sucesso!");

                //Popula grid atualizado
                this.btnPesquisa_Click(null, null);

                //Atualiza formulario, apos salvar os dados
                this.txtCadBookclifotoIdBookCliFoto.Text = bookclifotoVO.idBookCliFoto.ToString();
                this.ltCadBookclifotoFotoNome.Text = bookclifotoVO.fotoNome;
                this.ltCadBookclifotoFotoMime.Text = bookclifotoVO.fotoMime;
                this.ltBookclifotoCadastradoPor.Text = bookclifotoVO.cadastradoPor;
                this.ltBookclifotoEditadoPor.Text = bookclifotoVO.editadoPor;
                this.ltBookclifotoDataCadastro.Text = bookclifotoVO.cadastro.ToString("dd/MM/yyyy");
                this.ltBookclifotoDataEdicao.Text = bookclifotoVO.edicao.ToString("dd/MM/yyyy");

                //Habilita botoes da imagem foto
                this.grvCadBookclixBookclifoto.DataSource = this.LookDAOT.getBookclifotos(null, Int32.Parse(this.txtCadIdBookCli.Text));
                this.grvCadBookclixBookclifoto.DataBind();
            }
            catch { throw; }
        }
		/*protected void btnCadBookclifotoSalvar_Click(object sender, EventArgs e)
		{

			//Declara objetos
			BookclifotoVO bookclifotoVO = null;
			bool novoRegistro = false;

			try
			{
				//Verifica se o ID é nulo, se sim = cadastro novo
				if (string.IsNullOrEmpty(this.txtCadBookclifotoIdBookCliFoto.Text))
				{
					bookclifotoVO = BookclifotoVO.CreateVO();
					bookclifotoVO.cadastro = DateTime.Now;
					bookclifotoVO.cadastradoPor = usuarioVO.user;

					novoRegistro = true;

				}
				//Recupera dados para serem alterados
				else
				{
					//Recupera dados
					bookclifotoVO = this.LookDAOT.getBookclifoto(Int32.Parse(this.txtCadBookclifotoIdBookCliFoto.Text));
				}

				bookclifotoVO.idBookCli = Int32.Parse(this.txtCadIdBookCli.Text);
				bookclifotoVO.destaque = this.ddlCadBookclifotoDestaque.SelectedValue.Equals("S");
				bookclifotoVO.edicao = DateTime.Now;
				bookclifotoVO.editadoPor = usuarioVO.user;

				//Chama metodo para salvar ou criar novo registro
				if (novoRegistro)
					bookclifotoVO.idBookCliFoto = (int)this.LookDAOT.newBookclifoto(bookclifotoVO);
				else
					this.LookDAOT.setBookclifoto(bookclifotoVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro salvo com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Atualiza formulario, apos salvar os dados
				this.txtCadBookclifotoIdBookCliFoto.Text = bookclifotoVO.idBookCliFoto.ToString();
				this.ltCadBookclifotoFotoNome.Text = bookclifotoVO.fotoNome;
				this.ltCadBookclifotoFotoMime.Text = bookclifotoVO.fotoMime;
				this.ltBookclifotoCadastradoPor.Text = bookclifotoVO.cadastradoPor;
				this.ltBookclifotoEditadoPor.Text = bookclifotoVO.editadoPor;
				this.ltBookclifotoDataCadastro.Text = bookclifotoVO.cadastro.ToString("dd/MM/yyyy");
				this.ltBookclifotoDataEdicao.Text = bookclifotoVO.edicao.ToString("dd/MM/yyyy");

				//Habilita botoes da imagem foto
                //this.btCadBookclifotoFotoRemover.Enabled = true;
                //this.afuCadBookclifotoFotoUpload.Enabled = true;
                //this.btCadBookclifotoFotoVisualizar.Enabled = true;
				this.grvCadBookclixBookclifoto.DataSource = this.LookDAOT.getBookclifotos(null, Int32.Parse(this.txtCadIdBookCli.Text));
				this.grvCadBookclixBookclifoto.DataBind();

			}
			catch (Exception ex)
			{

				throw ex;
			}
		} */

		protected void btnCadBookclifotoCancelar_Click(object sender, EventArgs e)
		{
			//Volta para a tab page de pesquisa
			//this.tabBookcli.ActiveTabIndex = 0;

			// Desabilita os campos para edição
			Util.HabilitarCampos(false, this.panelBookclifoto);

			// Destrava botão de edição
			this.btnCadBookclifotoEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadBookclifotoIdBookCliFoto.Text));

			// Destrava botão de exclusao
			this.btnCadBookclifotoExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadBookclifotoIdBookCliFoto.Text));

			// Detrava botão de novo
            //this.btnCadBookclifotoNovo.Enabled = true;

			// Desabilita o botão salvar
			this.btnCadBookclifotoSalvar.Enabled = false;

			// Desabilita botões da imagem foto
            //this.btCadBookclifotoFotoRemover.Enabled = false;
            //this.afuCadBookclifotoFotoUpload.Enabled = false;
            //this.btCadBookclifotoFotoVisualizar.Enabled = (!string.IsNullOrEmpty(this.ltCadBookclifotoFotoNome.Text));

		}

		protected void btnCadBookclifotoEditar_Click(object sender, EventArgs e)
		{
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelBookclifoto);

			// Trava apenas os text box da PK
			this.txtCadBookclifotoIdBookCliFoto.Enabled = false;

			// Trava botão de edição
			this.btnCadBookclifotoEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadBookclifotoExcluir.Enabled = false;

			// Trava botão de novo
            //this.btnCadBookclifotoNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadBookclifotoSalvar.Enabled = true;

			// Habilita botões da imagem foto
            //this.btCadBookclifotoFotoRemover.Enabled = true;
            //this.afuCadBookclifotoFotoUpload.Enabled = true;
            //this.btCadBookclifotoFotoVisualizar.Enabled = true;

		}

		protected void btnCadBookclifotoExcluir_Click(object sender, EventArgs e)
		{
			//Declara objetos
			BookclifotoVO bookclifotoVO = null;

			try
			{
				//Cria objeto
				bookclifotoVO = BookclifotoVO.CreateVO();
				bookclifotoVO.idBookCliFoto = Int32.Parse(this.txtCadBookclifotoIdBookCliFoto.Text);

				//Chama metodo para excluir registro
				this.LookDAOT.delBookclifoto(bookclifotoVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro excluido com sucesso!");

				//Limpa formulario, apos salvar os dados
				Util.LimparCampos(this.panelBookclifoto);
				Util.HabilitarCampos(false, this.panelBookclifoto);
				this.ltCadBookclifotoFotoNome.Text = "";
				this.ltCadBookclifotoFotoMime.Text = "";
				this.grvCadBookclixBookclifoto.DataSource = this.LookDAOT.getBookclifotos(null, Int32.Parse(this.txtCadIdBookCli.Text));
				this.grvCadBookclixBookclifoto.DataBind();

				this.ltBookclifotoCadastradoPor.Text = "";
				this.ltBookclifotoEditadoPor.Text = "";
				this.ltBookclifotoDataCadastro.Text = "";
				this.ltBookclifotoDataEdicao.Text = "";

				// Trava botão de edição
				this.btnCadBookclifotoEditar.Enabled = false;

				// Trava botão de exclusao
				this.btnCadBookclifotoExcluir.Enabled = false;

				// Desabilita o botão salvar
				this.btnCadBookclifotoSalvar.Enabled = false;

				// Habilita o botao novo
                //this.btnCadBookclifotoNovo.Enabled = true;

				// Desabilita botões da imagem foto
                //this.btCadBookclifotoFotoRemover.Enabled = false;
                //this.afuCadBookclifotoFotoUpload.Enabled = false;
                //this.btCadBookclifotoFotoVisualizar.Enabled = false;

			}
			catch (Exception ex)
			{

				throw ex;
			}
			
		}
		protected void btnCadBookclifotoNovo_Click(object sender, EventArgs e)
		{
			//Limpa formulario, para a entrada de novo registro
			Util.LimparCampos(this.panelBookclifoto);
			// Habilita os campos para edição
				Util.HabilitarCampos(true, this.panelBookclifoto);

			this.ltCadBookclifotoFotoNome.Text = "";
			this.ltCadBookclifotoFotoMime.Text = "";
			this.ltBookclifotoCadastradoPor.Text = "";
			this.ltBookclifotoEditadoPor.Text = "";
			this.ltBookclifotoDataCadastro.Text = "";
			this.ltBookclifotoDataEdicao.Text = "";

			// Trava apenas os text box da PK
			this.txtCadBookclifotoIdBookCliFoto.Enabled = false;

			// Trava botão de edição
			this.btnCadBookclifotoEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadBookclifotoExcluir.Enabled = false;

			// Trava botão de novo
            //this.btnCadBookclifotoNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadBookclifotoSalvar.Enabled = true;

			// Desabilita botões da imagem foto
            //this.btCadBookclifotoFotoRemover.Enabled = false;
            //this.afuCadBookclifotoFotoUpload.Enabled = false;
            //this.btCadBookclifotoFotoVisualizar.Enabled = false;

		}

		protected void imgbCadBookclifotoVisualizar_Click(object sender, ImageClickEventArgs e)
		{
			// Declara objetos
			BookclifotoVO bookclifotoVO = null;
			int idBookCliFoto = 0;

			try
			{
				//Recupera os argumentos com o ID do objeto
				string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
				idBookCliFoto = Int32.Parse(argumentos[0]);

				//Recupera o objeto
				bookclifotoVO = this.LookDAOT.getBookclifoto(idBookCliFoto);

				this.txtCadBookclifotoIdBookCliFoto.Text = bookclifotoVO.idBookCliFoto.ToString();
				this.ddlCadBookclifotoDestaque.SelectedValue = (bookclifotoVO.destaque==null?" ":(bookclifotoVO.destaque.Value?"S":"N"));
				this.ltCadBookclifotoFotoNome.Text = bookclifotoVO.fotoNome;
				this.ltCadBookclifotoFotoMime.Text = bookclifotoVO.fotoMime;
				this.ltBookclifotoCadastradoPor.Text = bookclifotoVO.cadastradoPor;
				this.ltBookclifotoEditadoPor.Text = bookclifotoVO.editadoPor;
				this.ltBookclifotoDataCadastro.Text = bookclifotoVO.cadastro.ToString("dd/MM/yyyy");
				this.ltBookclifotoDataEdicao.Text = bookclifotoVO.edicao.ToString("dd/MM/yyyy");

				//Desabilita campos para edição
				Util.HabilitarCampos(false, this.panelBookclifoto);

				//Desabilita botão salvar
				this.btnCadBookclifotoSalvar.Enabled = false;

				//Habilita botão editar
				this.btnCadBookclifotoEditar.Enabled = true;

				//Habilita botão excluir
				this.btnCadBookclifotoExcluir.Enabled = true;

				//Habilita botão novo
                //this.btnCadBookclifotoNovo.Enabled = true;

				// Desabilita botões da imagem foto
                //this.btCadBookclifotoFotoRemover.Enabled = false;
                //this.afuCadBookclifotoFotoUpload.Enabled = false;
                //this.btCadBookclifotoFotoVisualizar.Enabled = (!string.IsNullOrEmpty(this.ltCadBookclifotoFotoNome.Text));

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		#endregion
		#region BookcliXBookclivideo
		protected void btnCadBookclivideoSalvar_Click(object sender, EventArgs e)
		{

			//Declara objetos
			BookclivideoVO bookclivideoVO = null;
			bool novoRegistro = false;

			try
			{
				//Verifica se o ID é nulo, se sim = cadastro novo
				if (string.IsNullOrEmpty(this.txtCadBookclivideoIdBookCliVideo.Text))
				{
					bookclivideoVO = BookclivideoVO.CreateVO();
					bookclivideoVO.cadastro = DateTime.Now;
					bookclivideoVO.cadastradoPor = usuarioVO.user;

					novoRegistro = true;

				}
				//Recupera dados para serem alterados
				else
				{
					//Recupera dados
					bookclivideoVO = this.LookDAOT.getBookclivideo(Int32.Parse(this.txtCadBookclivideoIdBookCliVideo.Text));
				}

				bookclivideoVO.idBookCli = Int32.Parse(this.txtCadIdBookCli.Text);
				bookclivideoVO.url = this.txtCadBookclivideoUrl.Text;
				bookclivideoVO.nome = this.txtCadBookclivideoNome.Text;
				bookclivideoVO.edicao = DateTime.Now;
				bookclivideoVO.editadoPor = usuarioVO.user;

				//Chama metodo para salvar ou criar novo registro
				if (novoRegistro)
					bookclivideoVO.idBookCliVideo = (int)this.LookDAOT.newBookclivideo(bookclivideoVO);
				else
					this.LookDAOT.setBookclivideo(bookclivideoVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro salvo com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Atualiza formulario, apos salvar os dados
				this.txtCadBookclivideoIdBookCliVideo.Text = bookclivideoVO.idBookCliVideo.ToString();
				this.ltBookclivideoCadastradoPor.Text = bookclivideoVO.cadastradoPor;
				this.ltBookclivideoEditadoPor.Text = bookclivideoVO.editadoPor;
				this.ltBookclivideoDataCadastro.Text = bookclivideoVO.cadastro.ToString("dd/MM/yyyy");
				this.ltBookclivideoDataEdicao.Text = bookclivideoVO.edicao.ToString("dd/MM/yyyy");

				this.grvCadBookclixBookclivideo.DataSource = this.LookDAOT.getBookclivideos(null, null, Int32.Parse(this.txtCadIdBookCli.Text));
				this.grvCadBookclixBookclivideo.DataBind();

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		protected void btnCadBookclivideoCancelar_Click(object sender, EventArgs e)
		{
			//Volta para a tab page de pesquisa
			//this.tabBookcli.ActiveTabIndex = 0;

			// Desabilita os campos para edição
			Util.HabilitarCampos(false, this.panelBookclivideo);

			// Destrava botão de edição
			this.btnCadBookclivideoEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadBookclivideoIdBookCliVideo.Text));

			// Destrava botão de exclusao
			this.btnCadBookclivideoExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadBookclivideoIdBookCliVideo.Text));

			// Detrava botão de novo
			this.btnCadBookclivideoNovo.Enabled = true;

			// Desabilita o botão salvar
			this.btnCadBookclivideoSalvar.Enabled = false;

		}

		protected void btnCadBookclivideoEditar_Click(object sender, EventArgs e)
		{
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelBookclivideo);

			// Trava apenas os text box da PK
			this.txtCadBookclivideoIdBookCliVideo.Enabled = false;

			// Trava botão de edição
			this.btnCadBookclivideoEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadBookclivideoExcluir.Enabled = false;

			// Trava botão de novo
			this.btnCadBookclivideoNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadBookclivideoSalvar.Enabled = true;

			this.txtCadBookclivideoNome.Focus();
		}

		protected void btnCadBookclivideoExcluir_Click(object sender, EventArgs e)
		{
			//Declara objetos
			BookclivideoVO bookclivideoVO = null;

			try
			{
				//Cria objeto
				bookclivideoVO = BookclivideoVO.CreateVO();
				bookclivideoVO.idBookCliVideo = Int32.Parse(this.txtCadBookclivideoIdBookCliVideo.Text);

				//Chama metodo para excluir registro
				this.LookDAOT.delBookclivideo(bookclivideoVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro excluido com sucesso!");

				//Limpa formulario, apos salvar os dados
				Util.LimparCampos(this.panelBookclivideo);
				Util.HabilitarCampos(false, this.panelBookclivideo);
				this.grvCadBookclixBookclivideo.DataSource = this.LookDAOT.getBookclivideos(null, null, Int32.Parse(this.txtCadIdBookCli.Text));
				this.grvCadBookclixBookclivideo.DataBind();

				this.ltBookclivideoCadastradoPor.Text = "";
				this.ltBookclivideoEditadoPor.Text = "";
				this.ltBookclivideoDataCadastro.Text = "";
				this.ltBookclivideoDataEdicao.Text = "";

				// Trava botão de edição
				this.btnCadBookclivideoEditar.Enabled = false;

				// Trava botão de exclusao
				this.btnCadBookclivideoExcluir.Enabled = false;

				// Desabilita o botão salvar
				this.btnCadBookclivideoSalvar.Enabled = false;

				// Habilita o botao novo
				this.btnCadBookclivideoNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
			
		}
		protected void btnCadBookclivideoNovo_Click(object sender, EventArgs e)
		{
			//Limpa formulario, para a entrada de novo registro
			Util.LimparCampos(this.panelBookclivideo);
			// Habilita os campos para edição
				Util.HabilitarCampos(true, this.panelBookclivideo);

			this.ltBookclivideoCadastradoPor.Text = "";
			this.ltBookclivideoEditadoPor.Text = "";
			this.ltBookclivideoDataCadastro.Text = "";
			this.ltBookclivideoDataEdicao.Text = "";

			// Trava apenas os text box da PK
			this.txtCadBookclivideoIdBookCliVideo.Enabled = false;

			// Trava botão de edição
			this.btnCadBookclivideoEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadBookclivideoExcluir.Enabled = false;

			// Trava botão de novo
			this.btnCadBookclivideoNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadBookclivideoSalvar.Enabled = true;

			this.txtCadBookclivideoNome.Focus();

		}

		protected void imgbCadBookclivideoVisualizar_Click(object sender, ImageClickEventArgs e)
		{
			// Declara objetos
			BookclivideoVO bookclivideoVO = null;
			int idBookCliVideo = 0;

			try
			{
				//Recupera os argumentos com o ID do objeto
				string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
				idBookCliVideo = Int32.Parse(argumentos[0]);

				//Recupera o objeto
				bookclivideoVO = this.LookDAOT.getBookclivideo(idBookCliVideo);

				this.txtCadBookclivideoIdBookCliVideo.Text = bookclivideoVO.idBookCliVideo.ToString();
				this.txtCadBookclivideoUrl.Text = bookclivideoVO.url;
				this.txtCadBookclivideoNome.Text = bookclivideoVO.nome;
				this.ltBookclivideoCadastradoPor.Text = bookclivideoVO.cadastradoPor;
				this.ltBookclivideoEditadoPor.Text = bookclivideoVO.editadoPor;
				this.ltBookclivideoDataCadastro.Text = bookclivideoVO.cadastro.ToString("dd/MM/yyyy");
				this.ltBookclivideoDataEdicao.Text = bookclivideoVO.edicao.ToString("dd/MM/yyyy");

				//Desabilita campos para edição
				Util.HabilitarCampos(false, this.panelBookclivideo);

				//Desabilita botão salvar
				this.btnCadBookclivideoSalvar.Enabled = false;

				//Habilita botão editar
				this.btnCadBookclivideoEditar.Enabled = true;

				//Habilita botão excluir
				this.btnCadBookclivideoExcluir.Enabled = true;

				//Habilita botão novo
				this.btnCadBookclivideoNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		#endregion

        protected void ddlToSession(object sender, EventArgs e)
        {
            DropDownList ddlSender = sender as DropDownList;
            Session[ddlSender.ID] = ddlSender.SelectedValue;
        }

	}
}
